fix(spec): drop the dead systemFields.owner key (#3175 follow-up)#3194
Merged
Conversation
`ObjectSchema.systemFields` advertised an `owner?: boolean` opt-out that nothing read — `applySystemFields` only consumes `systemFields.tenant` and `systemFields.audit`, and `owner_id` provisioning is governed by the object-level `ownership` property (made first-class in #3185). The key was declared but wired to nothing. - spec: remove `owner` from the `systemFields` object so it only advertises the two opt-outs it honors (`tenant`, `audit`). Runtime-compatible (the key was ignored; it is stripped now — both no-ops). A TS author who set it gets an excess-property error; the fix is to delete it or use `ownership: 'org' | 'none'`. - docs: regenerated the object reference; corrected the stale objectql/security note that called `audit` "reserved" (it is active). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014343Qv6DFAykuAJc9yjANb
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
📓 Docs Drift CheckThis PR changes 1 package(s): 102 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:
|
os-zhuang
marked this pull request as ready for review
July 18, 2026 07:49
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
Cleanup following #3185 (#3175).
ObjectSchema.systemFieldsadvertised anowner?: booleanopt-out key that nothing read: the registry (applySystemFields) only consumessystemFields.tenantandsystemFields.audit, andowner_idprovisioning is governed by the object-levelownershipproperty (made first-class in #3185). The key was declared but wired to nothing — dead weight that misleads authors into thinking they can toggle owner injection through it.Changes
ownerfrom thesystemFieldsobject so it only advertises the two opt-outs it actually honors (tenant,audit).object.mdx); corrected the staleprotocol/objectql/security.mdxnote that calledaudit"reserved for future expansion" when it is active.Compatibility
Runtime-compatible: the key was accepted-but-ignored before and is stripped now — both no-ops, no behavior change. A TypeScript author who set
systemFields.ownerwill now get an excess-property error; the fix is to delete it (it never did anything) or useownership: 'org' | 'none'to skipowner_idinjection. Carries aminorchangeset for the type-shape change.Verification
@objectstack/spec—object.test.ts104 pass;check:livenessgreen; reference doc regenerated deterministically.@objectstack/objectql—registry.test.ts+system-managed-fields-conformance.test.ts66 pass (the registry'ssystemFieldsread never includedowner, so injection is unaffected).🤖 Generated with Claude Code
https://claude.ai/code/session_014343Qv6DFAykuAJc9yjANb
Generated by Claude Code